<?php
/**
 * server  Version 1.2
 * ================================================
 * Copy 2011 - 2013  《火拼》项目
 * Web: http://www.my347.com/s_excel/
 * ================================================
 * Game: 《火拼》后台模块核心类
 * Date: 2013-5-26
 */

/**
 * _alert_back()表是JS弹窗
 * @access public
 * @param $_info
 * @return void 弹窗
 */

if (!defined('COMMON_IN_TG')) {
	exit('Access Defined!');
}

/**
 * 
 */
function _session_destroy() {
	session_destroy();
}

function _alert_back($_info) {
	_session_destroy();
	echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
	echo "<script charset='utf-8' language='javascript' type='text/javascript'>alert('".$_info."');history.back();</script>";
	exit();
}

function _alert_massage($_info) {
	echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
	echo "<script charset='utf-8' language='javascript' type='text/javascript'>alert('".$_info."');</script>";
}

function _alert_massageb($_info) {
	echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
	echo "<script charset='utf-8' language='javascript' type='text/javascript'>alert('".$_info."');history.back();</script>";
}

function _location($_info,$_url) {
	if (!empty($_info)) {
		echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
		echo "<script charset='utf-8' language='javascript' type='text/javascript'>alert('$_info'); top.location.href='$_url';</script>";
		exit();
	} else {
		header('Location:'.$_url);
	}
}

/**
 * _login_state登录状态的判断
 */
function _login_state() {
	if (isset($_COOKIE['username'])) {
		_alert_back('登录状态无法进行本操作！');
	}
}

/**
 * 
 */
function _sha1_uniqid() {
	return _mysql_string(sha1(uniqid(rand(),true)));
}

/**
 * _mysql_string
 * @param string $_string
 * @return string $_string
 */
function _mysql_string($_string) {
	//get_magic_quotes_gpc()如果开启状态，那么就不需要转义
	if (!GPC) {
		return mysql_real_escape_string($_string);
	} 
	return $_string;
}

/**
 * _check_code
 * @param string $_first_code
 * @param string $_end_code
 * @return void 验证码比对
 */
function _check_code($_first_code, $_end_code) {
	if ($_first_code != $_end_code) {
		_alert_back('验证码不正确,请重确定!');
	}
}

function CheckCodeFunc($_first_code,$_end_code) {
	if ($_first_code != $_end_code) {
		$_info ='验证码不正确,请重确定！';
		echo "<script type='text/javascript'>alert('".$_info."');</script>";
		return false;
	}
	return true;
}

function _manage_login() {
	if ((!isset($_COOKIE['username'])) || (!isset($_SESSION['admin']))) {
		_alert_back('非法登录！');
	}	
}

/**
 * _code()是验证码函数
 * @access public 
 * @param int $_width 表示验证码的长度
 * @param int $_height 表示验证码的高度
 * @param int $_rnd_code 表示验证码的位数
 * @param bool $_flag 表示验证码是否需要边框 
 * @return void 这个函数执行后产生一个验证码
 */
function _code($_width = 75,$_height = 25,$_rnd_code = 4,$_flag = true) {
	
	//创建随机码
	for ($i=0;$i<$_rnd_code;$i++) {
		$_nmsg .= dechex(mt_rand(0,15));
	}
	
	//保存在session
	$_SESSION['code'] = $_nmsg;
	
	//创建一张图像
	$_img = imagecreatetruecolor($_width,$_height);
	
	//白色
	$_white = imagecolorallocate($_img,255,255,255);
	
	//填充
	imagefill($_img,0,0,$_white);
	
	if ($_flag) {
		//黑色,边框
		$_black = imagecolorallocate($_img,123,78,89);
		imagerectangle($_img,0,0,$_width-1,$_height-1,$_black);
	}
	
	//随即画出6个线条
	for ($i=0;$i<6;$i++) {
		$_rnd_color = imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
		imageline($_img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_rnd_color);
	}
	
	//随即雪花
	for ($i=0;$i<100;$i++) {
		$_rnd_color = imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
		imagestring($_img,1,mt_rand(1,$_width),mt_rand(1,$_height),'*',$_rnd_color);
	}
	
	//输出验证码
	for ($i=0;$i<strlen($_SESSION['code']);$i++) {
		$_rnd_color = imagecolorallocate($_img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));
		imagestring($_img,5,$i*$_width/$_rnd_code+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],$_rnd_color);
	}
	
	//输出图像
	header('Content-Type: image/png');
	imagepng($_img);
	
	//销毁
	imagedestroy($_img);
}


function _set_xml($_xmlfile,$_clean) {
	$_fp = @fopen('new.xml','w');
	if (!$_fp) {
		exit('系统错误，文件不存在！');
	}
	flock($_fp,LOCK_EX);
	
	$_string = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";
	fwrite($_fp,$_string,strlen($_string));
	$_string = "<vip>\r\n";
	fwrite($_fp,$_string,strlen($_string));
	$_string = "\t<id>{$_clean['id']}</id>\r\n";
	fwrite($_fp,$_string,strlen($_string));
	$_string = "\t<username>{$_clean['username']}</username>\r\n";
	fwrite($_fp,$_string,strlen($_string));
	$_string = "\t<sex>{$_clean['sex']}</sex>\r\n";
	fwrite($_fp,$_string,strlen($_string));
	$_string = "\t<face>{$_clean['face']}</face>\r\n";
	fwrite($_fp,$_string,strlen($_string));
	$_string = "\t<email>{$_clean['email']}</email>\r\n";
	fwrite($_fp,$_string,strlen($_string));
	$_string = "\t<url>{$_clean['url']}</url>\r\n";
	fwrite($_fp,$_string,strlen($_string));
	$_string = "</vip>";
	fwrite($_fp,$_string,strlen($_string));
	
	flock($_fp,LOCK_UN);
	fclose($_fp);
}

function _ubb($_string) {
	$_string = nl2br($_string);
	$_string = preg_replace('/\[size=(.*)\](.*)\[\/size\]/U','<span style="font-size:\1px">\2</span>',$_string);
	$_string = preg_replace('/\[b\](.*)\[\/b\]/U','<strong>\1</strong>',$_string);
	$_string = preg_replace('/\[i\](.*)\[\/i\]/U','<em>\1</em>',$_string);
	$_string = preg_replace('/\[u\](.*)\[\/u\]/U','<span style="text-decoration:underline">\1</span>',$_string);
	$_string = preg_replace('/\[s\](.*)\[\/s\]/U','<span style="text-decoration:line-through">\1</span>',$_string);
	$_string = preg_replace('/\[color=(.*)\](.*)\[\/color\]/U','<span style="color:\1">\2</span>',$_string);
	$_string = preg_replace('/\[url\](.*)\[\/url\]/U','<a href="\1" target="_blank">\1</a>',$_string);
	$_string = preg_replace('/\[email\](.*)\[\/email\]/U','<a href="mailto:\1">\1</a>',$_string);
	$_string = preg_replace('/\[img\](.*)\[\/img\]/U','<img src="\1" alt="图片" />',$_string);
	$_string = preg_replace('/\[flash\](.*)\[\/flash\]/U','<embed style="width:480px;height:400px;" src="\1" />',$_string);
	return $_string;
}

/**
 * _html() 函数表示对字符串进行HTML过滤显示，如果是数组按数组的方式过滤，
 * 如果是单独的字符串，那么就按单独的字符串过滤
 * @param unknown_type $_string
 */
function _html($_string) {
	if (is_array($_string)) {
		foreach ($_string as $_key => $_value) {
			$_string[$_key] = _html($_value);   //这里采用了递归，如果不理解，那么还是用htmlspecialchars
		}
	} else {
		$_string = htmlspecialchars($_string);
	}
	return $_string;
}

/**
 * 从字符串中获取制定长度的字符串
 */
function getSubStr($str, $star, $length){
	$num =mb_strlen($str, 'utf-8');
	if($length <$num){
		return mb_substr($str, $star, $length);	
	}
	else{
		return $str;
	}
}

?>
